package p0test;

import org.junit.Test;

public class TestIndex {
    /**
     * 创建
     */
    @Test
    public void index() {
        IndexUtils indexUtils = new IndexUtils();
        indexUtils.index();
    }

    /**
     * 查询
     */
    @Test
    public void query() {
        IndexUtils indexUtils = new IndexUtils();
        indexUtils.query();
    }

    /**
     * 删除，删除了后我们会发现 numDocs少了。
     * 但是maxdocs 不变，lucene 有个回收站一样的概念
     * 删除的文档存在一个del 一样的文件中，搜索的时候
     * 是不会搜到的，
     */
    @Test
    public void delete() {
        IndexUtils idx = new IndexUtils();
        idx.delete();
    }

    @Test
    public void deleteAll() {
        IndexUtils idx = new IndexUtils();
        idx.deleteAll();
    }
    /**
     * 查询删除的文档数
     */
    @Test
    public void queryDeleteDocs() {
        IndexUtils idx = new IndexUtils();
        idx.queryDeleteDocs();
    }

    /**
     * 恢复删除的文档
     */
    @Test
    public void unDelete() {
        IndexUtils idx = new IndexUtils();
        idx.unDelete();
    }

    /**
     * 强制删除相当于清空回收站
     */
    @Test
    public void forceDelete() {
        IndexUtils idx = new IndexUtils();
        idx.forceDelete();
    }

    /**
     * 合并文档 比如索引多次每次创建全新的索引
     * 多执行几次index()方法 然后查看文件可以看出来
     * 只是合并了，并没有删除，可以调用query方法查看下虽然合
     * 成了两段，但是总数还是18（index了3次）
     */
    @Test
    public void mergeIndex() {
        IndexUtils idx = new IndexUtils();
        idx.mergeIndex();
    }

    /**
     * lucene其实并没有提供update操作，所谓的update其实是 delete 再save操作。
     */
    @Test
    public void update() {
        IndexUtils idx = new IndexUtils();
        idx.update();
    }
}
